// MY5BZ-F5OL4-VTUU6-X22NF-ADIYV-TTFOH腾讯地图的key
// house_pkg/pages/locate/index.ts

// 页面导入封装的qqmap.js
import qqmap from '../../../utils/qqmap'
console.log('qqmap  ----->  ', qqmap)
Page({
  data: {
    //当前地理位置
    address: '',
    //周边小区列表
    ambitusList: [],
  },
  //页面加载的时候自动获取地理位置
  async onLoad() {
    // 选择地理位置不是这个，我们需要获取地理位置
    // const res = await wx.chooseLocation({})
    // 解构出经纬度
    const { latitude, longitude } = await wx.getLocation({})
    console.log('latitude  ----->  ', latitude)
    console.log('longitude  ----->  ', longitude)
    // 调用逆地址解析函数
    this.reverseGeocoder(latitude, longitude)
  },
  //封装逆地址解析函数
  reverseGeocoder(latitude, longitude) {
    // 调用逆地址解析的方法
    qqmap.reverseGeocoder({
      location: {
        latitude,
        longitude,
      },
      success: (result) => {
        console.log('成功  ----->  ')
        console.log('  result----->  ', result)
        // 获取到地址后设置到data中
        this.setData({
          address: result.result.address,
        })
      },
      fail: (err) => {
        console.log('失败  ----->  ')
        console.log('err  ----->  ', err)
      },
    })
    //根据当前位置,获取周边小区
    qqmap.search({
      keyword: '小区',
      location: {
        latitude,
        longitude,
      },
      success: (searchResult) => {
        console.log('  searchResult----->  ', searchResult)
        this.setData({
          // 性能优化:因为页面只用到了title和id,所以我们需要对返回的数据进行一个处理
          // ambitusList: searchResult.data.map((v) => {
          //   return { id: v.id, title: v.title }
          // }),
          // 简洁写法
          ambitusList: searchResult.data.map((v) => ({ id: v.id, title: v.title })),
        })
      },
      fail: (searchErr) => {
        console.log(' searchErr ----->  ', searchErr)
      },
    })
  },
  //处理点击重新选择地理位置
  async onChooseAddress() {
    // 调用微信的选择定位api
    const { latitude, longitude } = await wx.chooseLocation({})
    console.log('latitude  ----->  ', latitude)
    console.log('longitude  ----->  ', longitude)
    // 调用逆地址解析传入经纬度转换为文字
    // 调用逆地址解析函数
    this.reverseGeocoder(latitude, longitude)
  },
})
